Channel coding is a popular technique for detecting and correcting errors in one-way communications in which information is transferred from a sender to a receiver. In channel coding, error correcting codes are used by a sender to transform a message to be sent into a codeword which is then sent to a receiver. If no error occurs in the transmission the receiver can recover the original message. If some limited amount of errors, occur the receiver can use redundancy added to the codeword to detect that errors have occurred. In some circumstances, it is also possible to correct the determined errors.
The performance guarantees of error correcting codes do not extend to two-way or interactive communications in which two or more parties engage in message exchanges which later messages are highly dependent on earlier messages of another party. The exchange of many small messages makes the use of error correcting codes inefficient, and a single corrupted message can derail an entire conversation.